#!/usr/bin/env node
//6.可读拉取流(拉去的时候才放数据，被动的)

//实例化 Readable 流
//向流中 push 若干个字符串
//将 Readable 流管道连接到标准输出流

const {Readable} = require('stream');

const rd = new Readable();

let c = 'a'.charCodeAt(0);

rd._read = ()=>{
  if(c>'z'.charCodeAt(0)){
    rd.push(null);
    return;
  }  
  rd.push(String.fromCharCode(c++));
}
rd.pipe(process.stdout);

//rd可读流pipe管道连接到这个可写流之后，他就会不断地触发这个_read方法，因为刚开始的时候拉取得时候没有东西，所以就会往里面放东西。那么c++,拉完a之后又空了就会在拉；在push(null)之后就不应该再push了所以加一个return语句
